package com.by.medical.common;

import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
@Getter
@Setter
public class AxiosResult<T> implements Serializable {//就是封装服务器返回的数据
    //T就是参数化数据类型  <T>泛型 可以是任意一个引用数据类型
    private String status;
    private String mag;
    private T data;

    private AxiosResult(EnumStatus enumStatus){
        this.status=enumStatus.getStatus();
        this.mag=enumStatus.getMsg();
    }
    private AxiosResult(EnumStatus enumStatus,T data){
        this.status=enumStatus.getStatus();
        this.mag=enumStatus.getMsg();
        this.data=data;
    }
    //静态方法 success error
    public static <T> AxiosResult<T> success(){
        return new AxiosResult<T>(EnumStatus.SUCCESS);
    }
    public static <T> AxiosResult<T> success(T data){
        return new AxiosResult<T>(EnumStatus.SUCCESS,data);
    }
    public static <T> AxiosResult<T> success(EnumStatus enumStatus,T data){
        return new AxiosResult<T>(enumStatus,data);
    }
    public static <T> AxiosResult error(){
        return new AxiosResult<T>(EnumStatus.ERROR);
    }
    public static <T> AxiosResult<T> error(EnumStatus enumStatus){
        return new AxiosResult<T>(enumStatus);
    }
}
